ajax的post提交参数长度超出限制的解决办法 |
您所在的位置:网站首页 › jquery 字符串长度 › ajax的post提交参数长度超出限制的解决办法 |
参考网站 https://segmentfault.com/a/1190000000754560 var imgData = $("img").toDataURL(); $.post(url,{imgData:imgData},function(){ })这是一个 图片的base64编码字符串的post提交, 一般的图片base64都可以提交 只有某一个由于字符串较长所以,提交失败。 post的数据大小在3M以上,查阅网上资料说,最大可以提交2M,也有说post提交无限制,是服务器的设置问题。 尝试一、修改服务器的maxPostSize=0,没有网上描述的效果。 感谢@x201509指出maxPostSize设置: maxPostSize设置为0是没有效果的,设置为一个指定大小是有效果的,如设置为8M大小。maxPostSize="8000000"。测试有效!尝试二、还有一种办法,post请求json, data : "{xxxx"+xxxx"}";这类提交后台 最后通过request.getReader()来获取流信息,解析还原 这个方法能够解析到,但是仍然解析的不全,只能获取了传递的一半左右的数据. 尝试三、最后使用了这个办法成功解决。 img=img.split(',')[1]; img=window.atob(img); var ia = new Uint8Array(img.length); for (var i = 0; i < img.length; i++) { ia[i] = img.charCodeAt(i); }; var blob=new Blob([ia], {type:"image/png"}); var formdata=new FormData(); formdata.append('file',blob); $.ajax({ url : url, data : formdata, processData : false, contentType : false, dataType: 'json', type : "POST", success : function(data){} });其他类似的超出最大限制的问题,也可以尝试这一类做法。 |
CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3 |